﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using Dominio;
using Servicios;

namespace EstadisticaProduce.Acuicultura
{
    public partial class frmDatosEmpresa : System.Web.UI.Page
    {
        clsAcuicultura _consultas = new clsAcuicultura();
        string err_mens = string.Empty;
        Int32 iresultado = 0;
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack) {

                hdnaccion.Value = string.Empty;
                hdncodempresa.Value = "00001";

                lblerror.Text = string.Empty;

                cargaRegion();
                cargaProvincia(string.Empty);
                cargaDistrito(string.Empty, string.Empty);

                cargaDatos(hdncodempresa.Value);
            }
        }

        protected void ddlRegion_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargaProvincia(ddlRegion.SelectedItem.Value);
        }

        protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
        {
            cargaDistrito(ddlRegion.SelectedItem.Value, ddlProvincia.SelectedItem.Value);
        }

        protected void btnLimpia_Click(object sender, EventArgs e)
        {
            limpiaFormulario();
        }

        private void cargaDatos(string _codempresa) {
            string COD_EMPRESA = hdncodempresa.Value;

            Hashtable ht = new Hashtable();
            ht.Add("COD_EMPRESA", COD_EMPRESA);
            List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
            lst = _consultas.ListaEmpresa(ht);

            hdnaccion.Value = "EDICION";
            txtRUC.Text = lst[0].numruc;
            txtNomComercial.Text = lst[0].nombrecomercial;
            txtRazonSocial.Text = lst[0].razonsocial;
            Utilidades.DropDownListSelectValue(ref ddlRegion, lst[0].coddepartamento);
            cargaProvincia(ddlRegion.SelectedItem.Value);
            Utilidades.DropDownListSelectValue(ref ddlProvincia, lst[0].codprovincia);
            cargaDistrito(ddlRegion.SelectedItem.Value, ddlProvincia.SelectedItem.Value);
            Utilidades.DropDownListSelectValue(ref ddlDistrito, lst[0].coddistrito);

            txtDireccion.Text = lst[0].domiciliofiscal;
            txtTelefono.Text = lst[0].numtelefono;
            txtFax.Text = lst[0].numfax;
            txtUrlSite.Text = lst[0].direccionweb;
            txtRepresentante.Text = lst[0].desrepresentante;
            Utilidades.DropDownListSelectValue(ref ddlCargo, "0");
            txtMail.Text = lst[0].mailrepresentante;

            txtRUC.Enabled = false;
            txtRUC.ReadOnly = true;
        
        }

        private void limpiaFormulario() {
            hdnaccion.Value = string.Empty;
            hdncodempresa.Value = string.Empty;
            //txtRUC.Text = string.Empty;
            //txtNomComercial.Text = string.Empty;
            //txtRazonSocial.Text = string.Empty;
            //Utilidades.DropDownListSelectValue(ref ddlRegion, "0");
            //cargaProvincia(string.Empty);
            //cargaDistrito(string.Empty, string.Empty);
            txtDireccion.Text = string.Empty;
            txtTelefono.Text = string.Empty;
            txtFax.Text = string.Empty;
            txtUrlSite.Text = string.Empty;
            txtRepresentante.Text = string.Empty;
            Utilidades.DropDownListSelectValue(ref ddlCargo, "0");
            txtMail.Text = string.Empty;

            lblerror.Text = string.Empty;
            txtRUC.Enabled = true;
            txtRUC.ReadOnly = false;
        }

        protected void btnGraba_Click(object sender, EventArgs e)
        {
            Int32 icantidad = 0;
            string COD_EMPRESA = hdncodempresa.Value;
            string NUM_RUC = txtRUC.Text;
            string DES_NOMBRECOMERCIAL = txtNomComercial.Text;
            string DES_RAZONSOCIAL = txtRazonSocial.Text;
            string COD_REGION = ddlRegion.SelectedItem.Value;
            string COD_PROVINCIA = ddlProvincia.SelectedItem.Value;
            string COD_DISTRITO = ddlDistrito.SelectedItem.Value;
            string DES_DOMICILIOFISCAL = txtDireccion.Text;
            string NUM_TELEFONO = txtTelefono.Text;
            string NUM_FAX = txtFax.Text;
            string DES_DIRECCIONWEB = txtUrlSite.Text;
            string DES_REPRESENTANTE = txtRepresentante.Text;
            decimal COD_CARGOREPRESENTANTE = Convert.ToDecimal(ddlCargo.SelectedItem.Value);
            string DES_EMAILREPRESENTANTE = txtMail.Text;

            try
            {
                Hashtable ht = new Hashtable();
                ht.Add("COD_EMPRESA", COD_EMPRESA);
                ht.Add("COD_REGION", COD_REGION);
                ht.Add("COD_PROVINCIA", COD_PROVINCIA);
                ht.Add("COD_DISTRITO", COD_DISTRITO);
                ht.Add("DES_RAZONSOCIAL", DES_RAZONSOCIAL);
                ht.Add("DES_NOMBRECOMERCIAL", DES_NOMBRECOMERCIAL);
                ht.Add("NUM_RUC", NUM_RUC);
                ht.Add("DES_DOMICILIOFISCAL", DES_DOMICILIOFISCAL);
                ht.Add("NUM_TELEFONO", NUM_TELEFONO);
                ht.Add("NUM_FAX", NUM_FAX);
                ht.Add("DES_DIRECCIONWEB", DES_DIRECCIONWEB);
                ht.Add("DES_REPRESENTANTE", DES_REPRESENTANTE);
                ht.Add("COD_CARGOREPRESENTANTE", COD_CARGOREPRESENTANTE);
                ht.Add("DES_EMAILREPRESENTANTE", DES_EMAILREPRESENTANTE);

                Hashtable htruc = new Hashtable();
                htruc.Add("NUM_RUC", NUM_RUC);
                List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
                lst = _consultas.VerificaRuc(htruc);
                icantidad = lst[0].cantidadruc;

                if (icantidad > 0 && hdnaccion.Value == string.Empty)
                {
                    iresultado = 100;
                }
                else
                {
                    if (hdnaccion.Value == "EDICION" && hdncodempresa.Value!= string.Empty)
                    {
                        iresultado = _consultas.ActualizaEmpresa(ht);
                        err_mens = "Se actualizó la empresa correctamente";
                    }
                    else
                    {
                        iresultado = _consultas.InsertaEmpresa(ht);
                        err_mens = "Se registró la empresa correctamente";
                    }
                }
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally
            {
                if (iresultado == 99)
                {
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
                }
                else if (iresultado == 100) {
                    err_mens = "RUC: " + txtRUC.Text + " YA ESTA REGISTRADO";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
               }
                else
                {
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "err_msg", "ShowError('" + err_mens + "');", true);
                }
            }
        }

        #region Carga: Drop Ubigeo

        private void cargaRegion() {
            string COD_REGION = "%";
            string COD_PROVINCIA = "00";
            string COD_DISTRITO = "00";

            try
            {
                Hashtable ht = new Hashtable();
                ht.Add("COD_REGION", COD_REGION);
                ht.Add("COD_PROVINCIA", COD_PROVINCIA);
                ht.Add("COD_DISTRITO", COD_DISTRITO);
                List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
                lst = _consultas.ListaUbigeo(ht);

                ddlRegion.DataSource = lst;
                ddlRegion.DataTextField = "desubicacion";
                ddlRegion.DataValueField = "coddepartamento";
                ddlRegion.DataBind();

                Utilidades.DropDownListAnnadir(ref ddlRegion, "0", "- Seleccione -",0);
                
                iresultado = 1;
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally { 
                if(iresultado==99){

                }else{
                
                }            
            }
        }
        
        private void cargaProvincia(string _codRegion) {
            string COD_REGION = _codRegion;
            string COD_PROVINCIA = "%";
            string COD_DISTRITO = "00";
            try
            {
                Hashtable ht = new Hashtable();
                ht.Add("COD_REGION", COD_REGION);
                ht.Add("COD_PROVINCIA", COD_PROVINCIA);
                ht.Add("COD_DISTRITO", COD_DISTRITO);
                List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
                lst = _consultas.ListaUbigeo(ht);

                ddlProvincia.DataSource = lst;
                ddlProvincia.DataTextField = "desubicacion";
                ddlProvincia.DataValueField = "codprovincia";
                ddlProvincia.DataBind();

                Utilidades.DropDownListAnnadir(ref ddlProvincia, "0", "- Seleccione -", 0);

                iresultado = 1;
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally
            {
                if (iresultado == 99)
                {

                }
                else
                {

                }
            }
        }

        private void cargaDistrito(string _codRegion, string _codProvincia) {
            string COD_REGION = _codRegion;
            string COD_PROVINCIA = _codProvincia;
            string COD_DISTRITO = "%";
            try
            {
                Hashtable ht = new Hashtable();
                ht.Add("COD_REGION", COD_REGION);
                ht.Add("COD_PROVINCIA", COD_PROVINCIA);
                ht.Add("COD_DISTRITO", COD_DISTRITO);
                List<domConsultasGenerales> lst = new List<domConsultasGenerales>();
                lst = _consultas.ListaUbigeo(ht);

               ddlDistrito.DataSource = lst;
               ddlDistrito.DataTextField = "desubicacion";
               ddlDistrito.DataValueField = "coddistrito";
               ddlDistrito.DataBind();

               Utilidades.DropDownListAnnadir(ref ddlDistrito, "0", "- Seleccione -", 0);

                iresultado = 1;
            }
            catch (Exception ex)
            {
                err_mens = ex.Message;
                iresultado = 99;
            }
            finally
            {
                if (iresultado == 99)
                {

                }
                else
                {

                }
            }
        
        }
        #endregion

    }
}